import React from 'react'
import { PageMetadata } from '@docusaurus/theme-common'
import { useBlogPost } from '@docusaurus/theme-common/internal'

export default function BlogPostPageMetadata(): JSX.Element {
  const { assets, metadata } = useBlogPost()
  const { title, description, date, tags, authors, frontMatter } = metadata

  const { keywords } = frontMatter
  const image = assets.image ?? frontMatter.image
  return (
    <PageMetadata
      title={title}
      description={description}
      keywords={keywords}
      image={image}
    >
      <meta property="og:type" content="article" />
      <meta property="article:published_time" content={date} />
      {/* TODO double check those article meta array syntaxes, see https://ogp.me/#array */}
      {authors.some(author => author.url) && (
        <meta
          property="article:author"
          content={authors
            .map(author => author.url)
            .filter(Boolean)
            .join(',')}
        />
      )}
      {tags.length > 0 && (
        <meta
          property="article:tag"
          content={tags.map(tag => tag.label).join(',')}
        />
      )}
    </PageMetadata>
  )
}
